package com.houger.ddd.seckill.facade.dto;

import com.alibaba.fastjson.JSONObject;
import com.houger.ddd.common.base.BaseActivityDto;
import com.houger.ddd.common.base.BaseExtDataDto;
import lombok.*;

import java.io.Serial;

/**
 * 活动模板业务配置表
 *
 * @author Administrator
 * @version $$ Revision:1.0.0, $$ Date: 2022-02-20 13:46:58 $$
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class ActivityTemplateBizConfigDto extends BaseActivityDto {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 活动模板ID
     */
    private Long templateId;

    /**
     * 资格发放方式 0-自动发放 1-任务获取
     */
    private Integer tokenIssueType;

    /**
     * 可同时开启的实例数量限制(开启) -1 不限制
     */
    private Integer instanceOpeningMax;

    /**
     * 活动实例关闭类型 0-不关闭 1-发起后相对时间关闭
     */
    private Integer instanceCloseType;

    /**
     * 实例发起后多长时间自动关闭(单位:秒)
     */
    private Integer instanceCloseAfter;

    /**
     * 发起人检查类型
     */
    private String initiatorCheckClass;

    /**
     * 用户数据group id
     */
    private Long initiatorGroupId;

    /**
     * 受邀人检查类型
     */
    private String playerCheckClass;

    /**
     * 用户数据group id
     */
    private Long playerGroupId;

    /**
     * 发起人奖励发放方式 0-不发放 1-自动发放 2-手动领取
     */
    private Integer initiatorRewardIssueType;

    /**
     * 发起人奖励关闭方式 0-不关闭 1-获得后相对时间关闭
     */
    private Integer initiatorRewardCloseType;

    /**
     * 发起人获得奖励后多长时间自动关闭(单位:秒)
     */
    private Integer initiatorRewardCloseAfter;

    /**
     * 受邀人奖励发放方式 0-不发放 1-自动发放 2-手动领取
     */
    private Integer playerRewardIssueType;

    /**
     * 受邀人奖励关闭方式 0-不关闭 1-获得后相对时间关闭
     */
    private Integer playerRewardCloseType;

    /**
     * 受邀人获得奖励后多长时间自动关闭(单位:秒)
     */
    private Integer playerRewardCloseAfter;

    /**
     * 整场维度-发起人最大可参与次数 -1不限制
     */
    private Integer templateInitiatorMax;

    /**
     * 整场维度-受邀人最大可参与次数 -1不限制
     */
    private Integer templatePlayerMax;

    /**
     * 整场维度-发起人每日最大可参与次数 -1不限制
     */
    private Integer templateInitiatorDailyMax;

    /**
     * 整场维度-受邀人每日最大可参与次数 -1不限制
     */
    private Integer templatePlayerDailyMax;

    /**
     * 整场维度-发起人最大可获得奖励次数 -1不限制
     */
    private Integer templateInitiatorRewardMax;

    /**
     * 整场维度-受邀人最大可获得奖励次数 -1不限制
     */
    private Integer templatePlayerRewardMax;

    /**
     * 整场维度-发起人每日最大可获得奖励次数 -1不限制
     */
    private Integer templateInitiatorDailyRewardMax;

    /**
     * 整场维度-受邀人每日最大可获得奖励次数 -1不限制
     */
    private Integer templatePlayerDailyRewardMax;

    /**
     * 一个实例可参与人数限制 -1不限制
     */
    private Integer instancePlayerLimit;

    /**
     * 一个实例受邀获得奖励的人数限制 -1不限制
     */
    private Integer instancePlayerRewardLimit;

    /**
     * 实例维度-受邀人最大可参与次数 -1不限制
     */
    private Integer instancePlayerMax;

    /**
     * 实例维度-受邀人最大可获得奖励次数 -1不限制
     */
    private Integer instancePlayerRewardMax;

    /**
     * 实例维度-受邀人单日最大可参与次数 -1不限制
     */
    private Integer instancePlayerDailyMax;

    /**
     * 实例维度-受邀人单日最大可获得奖励次数 -1不限制
     */
    private Integer instancePlayerDailyRewardMax;

    /**
     * 扩展参数
     */
    private JSONObject extDataJson;

    /**
     * 扩展参数对象
     */
    private BaseExtDataDto extDataObj;

}
